<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Cci.ILGenerator</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Cci.ILGenerator">
            <summary>
            Generates Microsoft intermediate language (MSIL) instructions.
            </summary>
            <remarks>
            A typical use of the ILGenerator class is to produce the values of the properties of an IMethodBody object.
            This could be a SourceMethodBody from the mutable Code Model or an instance of ILGeneratorMethodBody (or perhaps a derived class).
            In the former case, the ILGenerator is a part of the private state of an instance of CodeModelToILConverter (or a derived class) that
            is usually part of a code model mutator. In the latter case, the ILGenerator may have been used to generate a method body for which no
            Code Model has been built.
            </remarks>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.#ctor(Microsoft.Cci.IMetadataHost)">
            <summary>
            Allocates an object that helps with the generation of Microsoft intermediate language (MSIL) instructions corresponding to a method body.
            </summary>
            <param name="host">Provides a standard abstraction over the applications that host components that provide or consume objects from the metadata model.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.AddLocalToCurrentScope(Microsoft.Cci.ILocalDefinition)">
            <summary>
            Adds the given local variable to the current lexical scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.AdjustBranchSizesToBestFit">
            <summary>
            Performs one or more extra passes over the list of operations, changing long branches to short if possible and short branches to
            long branches if necessary.
            </summary>
            <remarks>If any long branches in this.operations could have been short, they are adjusted to be short. 
            This can result in an updated version of this.operations where some branches that had to be long in the previous
            version can now be short as well. Consequently, the adjustment process iterates until no further changes are possible.
            Note that all decisions are made based on the offsets at the start of an iteration. </remarks>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginCatchBlock(Microsoft.Cci.ITypeReference)">
            <summary>
            Begins a catch block.
            </summary>
            <param name="exceptionType">The Type object that represents the exception.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginFilterBlock">
            <summary>
            Begins an exception block for a filtered exception. See also BeginFilterBody.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginFilterBody">
            <summary>
            Begins the part of a filter handler that is invoked on the second pass if the filter condition returns true on the first pass.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginTryBody">
            <summary>
            Begins the body of a try statement.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginFaultBlock">
            <summary>
             Begins an exception fault block in the Microsoft intermediate language (MSIL) stream.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginFinallyBlock">
            <summary>
            Begins a finally block in the Microsoft intermediate language (MSIL) instruction stream.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.BeginScope">
            <summary>
            Begins a lexical scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode)">
            <summary>
            Puts the specified instruction onto the stream of instructions.
            </summary>
            <param name="opcode">The Intermediate Language (IL) instruction to be put onto the stream.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Byte)">
            <summary>
            Puts the specified instruction and unsigned 8 bit integer argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The unsigned 8 bit integer argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Double)">
            <summary>
            Puts the specified instruction and 64 bit floating point argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The 64 bit floating point argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.IFieldReference)">
            <summary>
            Puts the specified instruction and a field reference onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="field">A reference to a field.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Single)">
            <summary>
            Puts the specified instruction and 32 bit floating point argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The 32 bit floating point argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Int32)">
            <summary>
            Puts the specified instruction and 32 bit integer argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The 32 bit integer argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.ILGeneratorLabel)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream and leaves space to include a label when fixes are done.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="label">The label to which to branch from this location.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.ILGeneratorLabel[])">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream and leaves space to include an array of labels when fixes are done.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="labels">An array of labels to which to branch from this location.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.ILocalDefinition)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the index of the given local variable.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="local">A local variable.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Int64)">
            <summary>
            Puts the specified instruction and 64 bit integer argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The 64 bit integer argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.IMethodReference)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by a token for the given method reference.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="meth">A reference to a method. Generic methods can only be referenced via instances.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.IParameterDefinition)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the index of the given local variable.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="parameter">A parameter definition.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.SByte)">
            <summary>
            Puts the specified instruction and signed 8 bit integer argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The signed 8 bit integer argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.Int16)">
            <summary>
            Puts the specified instruction and signed 16 bit integer argument onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="arg">The signed 8 bit integer argument pushed onto the stream immediately after the instruction.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.ISignature)">
            <summary>
            Puts the specified instruction and a token for the given signature onto the Microsoft intermediate language (MSIL) stream of instructions.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="signature">The signature of the method or function pointer to call. Can include information about extra arguments.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,System.String)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the a token for the given string.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="str">The String to be emitted.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.Emit(Microsoft.Cci.OperationCode,Microsoft.Cci.ITypeReference)">
            <summary>
            Puts the specified instruction onto the Microsoft intermediate language (MSIL) stream followed by the a token for the referenced type.
            </summary>
            <param name="opcode">The Microsoft intermediate language (MSIL) instruction to be put onto the stream.</param>
            <param name="cls">The referenced type.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.EndTryBody">
            <summary>
            Ends a try body.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.EndScope">
            <summary>
            Ends a lexical scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.MarkLabel(Microsoft.Cci.ILGeneratorLabel)">
            <summary>
             Marks the Microsoft intermediate language (MSIL) stream's current position with the given label.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.MarkSequencePoint(Microsoft.Cci.ILocation)">
            <summary>
            Marks a sequence point in the Microsoft intermediate language (MSIL) stream.
            </summary>
            <param name="location">The location of the sequence point.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.UseNamespace(System.String)">
            <summary>
            Specifies a namespace to be search when evaluating expressions while stopped in the debugger at a sequence point in the current lexical scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.GetLocalScopes">
            <summary>
            Returns a sequence of all of the block scopes that have been defined for this method body. Includes nested block scopes.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.GetOperations">
            <summary>
            Returns a sequence of all of the IL operations that make up this method body.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGenerator.GetOperationExceptionInformation">
            <summary>
            Returns a sequence of descriptors that define where try blocks and their associated handlers can be found in the instruction sequence.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGenerator.CurrentOffset">
            <summary>
            The offset in the IL stream where the next instruction will be emitted.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGenerator.InTryBody">
            <summary>
            True if the ILGenerator is currently inside the body of a try statement.
            </summary>
        </member>
        <member name="T:Microsoft.Cci.ILGeneratorLabel">
            <summary>
            An object that is used to mark a location in an IL stream and that is used to indicate where branches go to.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorLabel.#ctor">
            <summary>
            Initializes an object that is used to mark a location in an IL stream and that is used to indicate where branches go to.
            </summary>
        </member>
        <member name="T:Microsoft.Cci.ILGeneratorScope">
            <summary>
            An object that keeps track of a set of local definitions (variables) and used (imported) namespaces that appear in the
            source code corresponding to the IL operations from Offset to Offset+Length.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorScope.Length">
            <summary>
            The length of the scope. Offset+Length equals the offset of the first operation outside the scope, or equals the method body length.
            </summary>
            <value></value>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorScope.Locals">
            <summary>
            The local definitions (variables) defined in the source code corresponding to this scope.(A debugger can use this when evaluating expressions in a program
            point that falls inside this scope.)
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorScope.Offset">
            <summary>
            The offset of the first operation in the scope.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorScope.UsedNamespaceNames">
            <summary>
            The namespaces that are used (imported) into this scope. (A debugger can use this when evaluating expressions in a program
            point that falls inside this scope.)
            </summary>
            <value>The used namespace names.</value>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorScope.UsedNamespaces">
            <summary>
            Zero or more used namespaces. These correspond to using clauses in C#.
            </summary>
        </member>
        <member name="T:Microsoft.Cci.UsedNamespace">
            <summary>
             A namespace that is used (imported) inside a namespace scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.UsedNamespace.#ctor(Microsoft.Cci.IName)">
            <summary>
            Allocates a namespace that is used (imported) inside a namespace scope.
            </summary>
            <param name="namespaceName">The name of a namepace that has been aliased.  For example the "y.z" of "using x = y.z;" or "using y.z" in C#.</param>
        </member>
        <member name="P:Microsoft.Cci.UsedNamespace.Alias">
            <summary>
            An alias for a namespace. For example the "x" of "using x = y.z;" in C#. Empty if no alias is present.
            </summary>
            <value></value>
        </member>
        <member name="P:Microsoft.Cci.UsedNamespace.NamespaceName">
            <summary>
            The name of a namepace that has been aliased.  For example the "y.z" of "using x = y.z;" or "using y.z" in C#.
            </summary>
            <value></value>
        </member>
        <member name="T:Microsoft.Cci.ILGeneratorMethodBody">
            <summary>
            A metadata (IL) level represetation of the body of a method or of a property/event accessor.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorMethodBody.#ctor(Microsoft.Cci.ILGenerator,System.Boolean,System.UInt16)">
            <summary>
            Allocates an object that is the metadata (IL) level represetation of the body of a method or of a property/event accessor.
            </summary>
            <param name="generator">An object that provides a way to construct the information needed by a method body. Construction should
            be completed by the time the generator is passed to this constructor. The generator is not referenced by the resulting method body.</param>
            <param name="localsAreZeroed">True if the locals are initialized by zeroeing the stack upon method entry.</param>
            <param name="maxStack">The maximum number of elements on the evaluation stack during the execution of the method.</param>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorMethodBody.Dispatch(Microsoft.Cci.IMetadataVisitor)">
            <summary>
            Calls visitor.Visit(IMethodBody).
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorMethodBody.GetLocalScopes">
            <summary>
            Returns zero or more local (block) scopes into which the CLR IL operations of this method body is organized.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorMethodBody.GetNamespaceScopes">
            <summary>
            Returns zero or more namespace scopes into which the namespace type containing the given method body has been nested.
            These scopes determine how simple names are looked up inside the method body. There is a separate scope for each dotted
            component in the namespace type name. For istance namespace type x.y.z will have two namespace scopes, the first is for the x and the second
            is for the y.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.OperationExceptionInformation">
            <summary>
            A list exception data within the method body IL.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.LocalsAreZeroed">
            <summary>
            True if the locals are initialized by zeroeing the stack upon method entry.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.LocalVariables">
            <summary>
            The local variables of the method.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.MethodDefinition">
            <summary>
            The definition of the method whose body this is.
            If this is the body of an event or property accessor, this will hold the corresponding adder/remover/setter or getter method.
            </summary>
            <remarks>The setter should only be called once, to complete the two phase initialization of this object.</remarks>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.Operations">
            <summary>
            A list CLR IL operations that implement this method body.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.MaxStack">
            <summary>
            The maximum number of elements on the evaluation stack during the execution of the method.
            </summary>
        </member>
        <member name="P:Microsoft.Cci.ILGeneratorMethodBody.PrivateHelperTypes">
            <summary>
            Any types that are implicitly defined in order to implement the body semantics.
            In case of AST to instructions conversion this lists the types produced.
            In case of instructions to AST decompilation this should ideally be list of all types
            which are local to method.
            </summary>
        </member>
        <member name="T:Microsoft.Cci.ILGeneratorSourceInformationProvider">
            <summary>
            An object that can provide information about the local scopes of a method and that can map ILocation objects
            to IPrimarySourceLocation objects.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetIteratorScopes(Microsoft.Cci.IMethodBody)">
            <summary>
            Returns zero or more local (block) scopes, each defining an IL range in which an iterator local is defined.
            The scopes are returned by the MoveNext method of the object returned by the iterator method.
            The index of the scope corresponds to the index of the local. Specifically local scope i corresponds
            to the local stored in field &lt;localName&gt;x_i of the class used to store the local values in between
            calls to MoveNext.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetLocalScopes(Microsoft.Cci.IMethodBody)">
            <summary>
            Returns zero or more local (block) scopes into which the CLR IL operations in the given method body is organized.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetNamespaceScopes(Microsoft.Cci.IMethodBody)">
            <summary>
            Returns zero or more namespace scopes into which the namespace type containing the given method body has been nested.
            These scopes determine how simple names are looked up inside the method body. There is a separate scope for each dotted
            component in the namespace type name. For istance namespace type x.y.z will have two namespace scopes, the first is for the x and the second
            is for the y.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetConstantsInScope(Microsoft.Cci.ILocalScope)">
            <summary>
            Returns zero or more local constant definitions that are local to the given scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetVariablesInScope(Microsoft.Cci.ILocalScope)">
            <summary>
            Returns zero or more local variable definitions that are local to the given scope.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.IsIterator(Microsoft.Cci.IMethodBody)">
            <summary>
            Returns true if the method body is an iterator, in which case the scope information should be retrieved from the MoveNext method of the object
            returned by the iterator method.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetPrimarySourceLocationsFor(System.Collections.Generic.IEnumerable{Microsoft.Cci.ILocation})">
            <summary>
            Return zero or more locations in primary source documents that correspond to one or more of the given derived (non primary) document locations.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetPrimarySourceLocationsFor(Microsoft.Cci.ILocation)">
            <summary>
            Return zero or more locations in primary source documents that correspond to the given derived (non primary) document location.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetPrimarySourceLocationsForDefinitionOf(Microsoft.Cci.ILocalDefinition)">
            <summary>
            Return zero or more locations in primary source documents that correspond to the definition of the given local.
            </summary>
        </member>
        <member name="M:Microsoft.Cci.ILGeneratorSourceInformationProvider.GetSourceNameFor(Microsoft.Cci.ILocalDefinition,System.Boolean@)">
            <summary>
            Returns the source name of the given local definition, if this is available.
            Otherwise returns the value of the Name property and sets isCompilerGenerated to true.
            </summary>
        </member>
    </members>
</doc>
